/*====================================================================================================*/
/*====================================================================================================*/
#include "stm32f1_system.h"
#include "algorithm_compare.h"
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU8
**功能 : 比較 u8 Arr1 與 u8 Arr2
**輸入 : Arr1, Arr2, DataLen
**輸出 : SUCCESS/ERROR
**使用 : Cmp_ArrU8(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
uint8_t Cmp_ArrU8( const uint8_t *Arr1, const uint8_t *Arr2, uint32_t dataLen )
{
  uint32_t ErrCount = 0;

  while(dataLen) {
    dataLen--;
    if(Arr1[dataLen] != Arr2[dataLen])
      ErrCount++;
  }

  return ((ErrCount==0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU16
**功能 : 比較 u16 Arr1 與 u16 Arr2
**輸入 : Arr1, Arr2, DataLen
**輸出 : SUCCESS/ERROR
**使用 : Cmp_ArrU16(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
uint8_t Cmp_ArrU16( const uint16_t *Arr1, const uint16_t *Arr2, uint32_t dataLen )
{
  uint32_t ErrCount = 0;

  while(dataLen) {
    dataLen--;
    if(Arr1[dataLen] != Arr2[dataLen])
      ErrCount++;
  }

  return ((ErrCount==0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU32
**功能 : 比較 u32 Arr1 與 u32 Arr2
**輸入 : Arr1, Arr2, DataLen
**輸出 : SUCCESS/ERROR
**使用 : Cmp_ArrU32(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
uint8_t Cmp_ArrU32( const uint32_t *Arr1, const uint32_t *Arr2, uint32_t DataLen )
{
  uint32_t ErrCount = 0;

  while(DataLen) {
    DataLen--;
    if(Arr1[DataLen] != Arr2[DataLen])
      ErrCount++;
  }

  return ((ErrCount==0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU8U16
**功能 : 比較 u8 Arr1 與 u16 Arr2
**輸入 : Arr1, Arr2, DataLen
**輸出 : SUCCESS/ERROR
**使用 : Cmp_ArrU8U16(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
uint8_t Cmp_ArrU8U16( const uint8_t *Arr1, const uint16_t *Arr2, uint32_t dataLen )
{
  uint32_t ErrCount = 0;

  while(dataLen) {
    dataLen--;
    if(Byte16(uint16_t, Arr1[(dataLen<<1)], Arr1[(dataLen<<1)+1]) != Arr2[dataLen])
      ErrCount++;
  }

  return ((ErrCount==0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*/
